--白蔷薇藤蔓
local s,id=GetID()
function s.initial_effect(c)
	---------------------------------------
	--e1效果,同调召唤成功时，特殊召唤衍生物
	local e1=Effect.CreateEffect(c)
	--新建一个名为e1的空效果
	e1:SetDescription(aux.Stringid(id,0))
	--设置这个效果的效果描述（显示脚本提示文字，（这张卡，第0行））第一行算0
	e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
	--设置这个效果的效果分类（含特殊召唤的效果+含衍生物的效果）
	e1:SetCode(EVENT_BE_MATERIAL)
	--设置这个诱发效果的事件、时点(作为融合/仪式同调/超量素材时)
	e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
	--设置这个效果的类型，定义效果触发类型（自己状态变化时触发+诱发选发效果）
	e1:SetCondition(s.tcon)
    --设置这个效果的效果条件（这张卡，tcon）tocn为取的名字，
	--下面两个同理，方便后面函数调用区分它们，避免名称相同而导致报错。
	e1:SetTarget(s.ttg)
	--设置这个效果的效果流程（这张卡，ttg）
	e1:SetOperation(s.top)
	--设置这个效果的效果处理（这张卡，top）
	c:RegisterEffect(e1)
	--把这个效果注册给e1
	--------------------------------------
	--e2效果，墓地起跳这张卡
	local e2=Effect.CreateEffect(c)
	--新建一个名为e2的空效果
	e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
	--设置这个效果的效果分类（含特殊召唤的效果）
	e2:SetType(EFFECT_TYPE_IGNITION)
	--设置这个效果的类型，定义效果触发类型（启动效果）
	e2:SetRange(LOCATION_GRAVE)
	--设置这个效果的生效范围（墓地）
	e2:SetCountLimit(1,id)
	--设置这个效果一回合可以发动的次数（1，这张卡）
	e2:SetTarget(s.sptg)
	--设置这个效果的效果流程（这张卡，stpg）
	e2:SetOperation(s.spop)
	--设置这个效果的效果处理（这张卡，spop）
	c:RegisterEffect(e2)
	--把这个效果注册给e2
end
s.listed_names={922204011,id}
--记述相关衍生物的卡号922204011
function s.tcon(e,tp,eg,ep,ev,re,r,rp)
	--筛选器，这张卡.tcon（e=这个效果本身，tp=发动效果的玩家，eg=触发时点时涉及的卡片组，ep=触发时点时涉及的玩家，
	-- ev=触发时点时数值/连锁序号仅限连锁相关时点，re=触发时点的源头效果，r=触发时点的原因，rp=触发时点的源头玩家）
	return e:GetHandler():IsLocation(LOCATION_GRAVE) or e:GetHandler():IsLocation(LOCATION_REMOVED) and r==REASON_SYNCHRO
	--前提条件---这个效果返回在哪一张卡上生效(通常是用Card.RegisterEffect注册该效果的卡)---检查这张卡的位置（墓地）
	--或---这个效果返回在哪一张卡上生效(通常是用Card.RegisterEffect注册该效果的卡)---检查这张卡的位置（除外区）---和触发时点的原因 == 用于同调召唤
end
function s.ttg(e,tp,eg,ep,ev,re,r,rp,chk)
	-------------------------------- chk=条件检索标记（用于cost以及target函数）
	if chk==0 then return not Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT)
		--chk=0时，Duel.IsPlayerAffectedByEffect---检查player是否受到种类为诱发效果的效果影响（发动效果的玩家，青眼精灵龙）如果有就返回那些效果，
		--没有则返回nil ,玩家为0和1以外的数值时，也会返回nil。因为前面有个not，所以会返回相反结果。简单来说就是如果没受到影响那么效果就通过。
		and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
		--和 检查玩家场上可用区域的空格数（发动效果的玩1家，怪兽区)>0
		and Duel.IsPlayerCanSpecialSummonMonster(tp,id+1,0,TYPES_TOKEN,800,800,2,RACE_PLANT,ATTRIBUTE_DARK) end
	Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
	Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,0)
end
function s.top(e,tp,eg,ep,ev,re,r,rp)
	if Duel.IsPlayerAffectedByEffect(tp,CARD_BLUEEYES_SPIRIT) or Duel.GetLocationCount(tp,LOCATION_MZONE)<0
		or not Duel.IsPlayerCanSpecialSummonMonster(tp,id+1,0,TYPES_TOKEN,800,800,2,RACE_PLANT,ATTRIBUTE_DARK) then return end
	for i=1,1 do
		local token=Duel.CreateToken(tp,922204011)
		Duel.SpecialSummonStep(token,0,tp,tp,false,false,POS_FACEUP)
	end
	Duel.SpecialSummonComplete()
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
	if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
		and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
	Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
	local c=e:GetHandler()
	if c:IsRelateToEffect(e) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
		--这张卡从场上离开的场合除外
		local e1=Effect.CreateEffect(c)
		e1:SetDescription(3300)
		e1:SetType(EFFECT_TYPE_SINGLE)
		e1:SetCode(EFFECT_LEAVE_FIELD_REDIRECT)
		e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CLIENT_HINT)
		e1:SetReset(RESET_EVENT+RESETS_REDIRECT)
		e1:SetValue(LOCATION_REMOVED)
		c:RegisterEffect(e1,true)
	end
end